home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 July: Mac OS SDK / Dev.CD Jul 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / AIncludes / AIFF.a < prev    next >
Encoding:
Text File  |  1996-01-24  |  6.9 KB  |  226 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        AIFF.a
  3. ;
  4. ;    Contains:    Definition of AIFF file format components.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Package:    Universal Interfaces 2.2 in “MPW” on ETO #20
  8. ;
  9. ;    Copyright:    © 1984-1995 by Apple Computer, Inc.
  10. ;                All rights reserved.
  11. ;
  12. ;    Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13. ;                stack.  Include the file and version information (from above)
  14. ;                in the problem description and send to:
  15. ;                    Internet:    apple.bugs@applelink.apple.com
  16. ;                    AppleLink:    APPLE.BUGS
  17. ;
  18. ;
  19.  
  20.     IF &TYPE('__AIFF__') = 'UNDEFINED' THEN
  21. __AIFF__ SET 1
  22.  
  23.  
  24.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  25.     include 'Types.a'
  26.     ENDIF
  27. ;        include 'ConditionalMacros.a'                                ;
  28.  
  29. AIFFID                            EQU        'AIFF'
  30. AIFCID                            EQU        'AIFC'
  31. FormatVersionID                    EQU        'FVER'
  32. CommonID                        EQU        'COMM'
  33. FORMID                            EQU        'FORM'
  34. SoundDataID                        EQU        'SSND'
  35. MarkerID                        EQU        'MARK'
  36. InstrumentID                    EQU        'INST'
  37. MIDIDataID                        EQU        'MIDI'
  38. AudioRecordingID                EQU        'AESD'
  39. ApplicationSpecificID            EQU        'APPL'
  40. CommentID                        EQU        'COMT'
  41. NameID                            EQU        'NAME'
  42. AuthorID                        EQU        'AUTH'
  43. CopyrightID                        EQU        '(c) '
  44. AnnotationID                    EQU        'ANNO'
  45.  
  46. NoLooping                        EQU        0
  47. ForwardLooping                    EQU        1
  48. ForwardBackwardLooping            EQU        2
  49. ; AIFF-C Versions 
  50. AIFCVersion1                    EQU        $A2805140
  51.  
  52. ; Compression Types 
  53. NoneType                        EQU        'NONE'
  54. ACE2Type                        EQU        'ACE2'
  55. ACE8Type                        EQU        'ACE8'
  56. MACE3Type                        EQU        'MAC3'
  57. MACE6Type                        EQU        'MAC6'
  58.  
  59. ; typedef unsigned long     ID
  60. ; typedef short             MarkerIdType
  61. ChunkHeader             RECORD    0
  62. ckID                     ds.l   1        ; offset: $0 (0)
  63. ckSize                     ds.l   1        ; offset: $4 (4)
  64. sizeof                     EQU *            ; size:   $8 (8)
  65.                         ENDR
  66.  
  67. ; typedef struct ChunkHeader  ChunkHeader
  68. ContainerChunk             RECORD    0
  69. ckID                     ds.l   1        ; offset: $0 (0)
  70. ckSize                     ds.l   1        ; offset: $4 (4)
  71. formType                 ds.l   1        ; offset: $8 (8)
  72. sizeof                     EQU *            ; size:   $C (12)
  73.                         ENDR
  74.  
  75. ; typedef struct ContainerChunk  ContainerChunk
  76. FormatVersionChunk         RECORD    0
  77. ckID                     ds.l   1        ; offset: $0 (0)
  78. ckSize                     ds.l   1        ; offset: $4 (4)
  79. timestamp                 ds.l   1        ; offset: $8 (8)
  80. sizeof                     EQU *            ; size:   $C (12)
  81.                         ENDR
  82.  
  83. ; typedef struct FormatVersionChunk  FormatVersionChunk
  84. ; typedef FormatVersionChunk  *FormatVersionChunkPtr
  85. CommonChunk             RECORD    0
  86. ckID                     ds.l   1        ; offset: $0 (0)
  87. ckSize                     ds.l   1        ; offset: $4 (4)
  88. numChannels                 ds.w   1        ; offset: $8 (8)
  89. numSampleFrames             ds.l   1        ; offset: $A (10)
  90. sampleSize                 ds.w   1        ; offset: $E (14)
  91. sampleRate                 ds.w   5        ; offset: $10 (16)
  92. sizeof                     EQU *            ; size:   $1A (26)
  93.                         ENDR
  94.  
  95. ; typedef struct CommonChunk  CommonChunk
  96. ; typedef CommonChunk         *CommonChunkPtr
  97. ExtCommonChunk             RECORD    0
  98. ckID                     ds.l   1        ; offset: $0 (0)
  99. ckSize                     ds.l   1        ; offset: $4 (4)
  100. numChannels                 ds.w   1        ; offset: $8 (8)
  101. numSampleFrames             ds.l   1        ; offset: $A (10)
  102. sampleSize                 ds.w   1        ; offset: $E (14)
  103. sampleRate                 ds.w   5        ; offset: $10 (16)
  104. compressionType             ds.l   1        ; offset: $1A (26)
  105. compressionName             ds.b   1        ; offset: $1E (30)        ; variable length array, Pascal string 
  106.                          ORG 32
  107. sizeof                     EQU *            ; size:   $20 (32)
  108.                         ENDR
  109.  
  110. ; typedef struct ExtCommonChunk  ExtCommonChunk
  111. ; typedef ExtCommonChunk     *ExtCommonChunkPtr
  112. SoundDataChunk             RECORD    0
  113. ckID                     ds.l   1        ; offset: $0 (0)
  114. ckSize                     ds.l   1        ; offset: $4 (4)
  115. offset                     ds.l   1        ; offset: $8 (8)
  116. blockSize                 ds.l   1        ; offset: $C (12)
  117. sizeof                     EQU *            ; size:   $10 (16)
  118.                         ENDR
  119.  
  120. ; typedef struct SoundDataChunk  SoundDataChunk
  121. ; typedef SoundDataChunk     *SoundDataChunkPtr
  122. Marker                     RECORD    0
  123. id                         ds.w   1        ; offset: $0 (0)
  124. position                 ds.l   1        ; offset: $2 (2)
  125. markerName                 ds.l   64        ; offset: $6 (6)
  126. sizeof                     EQU *            ; size:   $106 (262)
  127.                         ENDR
  128.  
  129. ; typedef struct Marker     Marker
  130. MarkerChunk             RECORD    0
  131. ckID                     ds.l   1        ; offset: $0 (0)
  132. ckSize                     ds.l   1        ; offset: $4 (4)
  133. numMarkers                 ds.w   1        ; offset: $8 (8)
  134. Markers                     ds     Marker    ; offset: $A (10)        ; variable length array 
  135. sizeof                     EQU *            ; size:   $110 (272)
  136.                         ENDR
  137.  
  138. ; typedef struct MarkerChunk  MarkerChunk
  139. ; typedef MarkerChunk         *MarkerChunkPtr
  140. AIFFLoop                 RECORD    0
  141. playMode                 ds.w   1        ; offset: $0 (0)
  142. beginLoop                 ds.w   1        ; offset: $2 (2)
  143. endLoop                     ds.w   1        ; offset: $4 (4)
  144. sizeof                     EQU *            ; size:   $6 (6)
  145.                         ENDR
  146.  
  147. ; typedef struct AIFFLoop     AIFFLoop
  148. InstrumentChunk         RECORD    0
  149. ckID                     ds.l   1        ; offset: $0 (0)
  150. ckSize                     ds.l   1        ; offset: $4 (4)
  151. baseFrequency             ds.b   1        ; offset: $8 (8)
  152. detune                     ds.b   1        ; offset: $9 (9)
  153. lowFrequency             ds.b   1        ; offset: $A (10)
  154. highFrequency             ds.b   1        ; offset: $B (11)
  155. lowVelocity                 ds.b   1        ; offset: $C (12)
  156. highVelocity             ds.b   1        ; offset: $D (13)
  157. gain                     ds.w   1        ; offset: $E (14)
  158. sustainLoop                 ds     AIFFLoop ; offset: $10 (16)
  159. releaseLoop                 ds     AIFFLoop ; offset: $16 (22)
  160. sizeof                     EQU *            ; size:   $1C (28)
  161.                         ENDR
  162.  
  163. ; typedef struct InstrumentChunk  InstrumentChunk
  164. ; typedef InstrumentChunk     *InstrumentChunkPtr
  165. MIDIDataChunk             RECORD    0
  166. ckID                     ds.l   1        ; offset: $0 (0)
  167. ckSize                     ds.l   1        ; offset: $4 (4)
  168. MIDIdata                 ds.b   1        ; offset: $8 (8)        ; variable length array 
  169.                          ORG 10
  170. sizeof                     EQU *            ; size:   $A (10)
  171.                         ENDR
  172.  
  173. ; typedef struct MIDIDataChunk  MIDIDataChunk
  174. ; typedef MIDIDataChunk     *MIDIDataChunkPtr
  175. AudioRecordingChunk     RECORD    0
  176. ckID                     ds.l   1        ; offset: $0 (0)
  177. ckSize                     ds.l   1        ; offset: $4 (4)
  178. AESChannelStatus         ds.b   24        ; offset: $8 (8)
  179. sizeof                     EQU *            ; size:   $20 (32)
  180.                         ENDR
  181.  
  182. ; typedef struct AudioRecordingChunk  AudioRecordingChunk
  183. ; typedef AudioRecordingChunk  *AudioRecordingChunkPtr
  184. ApplicationSpecificChunk RECORD    0
  185. ckID                     ds.l   1        ; offset: $0 (0)
  186. ckSize                     ds.l   1        ; offset: $4 (4)
  187. applicationSignature     ds.l   1        ; offset: $8 (8)
  188. data                     ds.b   1        ; offset: $C (12)        ; variable length array 
  189.                          ORG 14
  190. sizeof                     EQU *            ; size:   $E (14)
  191.                         ENDR
  192.  
  193. ; typedef struct ApplicationSpecificChunk  ApplicationSpecificChunk
  194. ; typedef ApplicationSpecificChunk  *ApplicationSpecificChunkPtr
  195. Comment                 RECORD    0
  196. timeStamp                 ds.l   1        ; offset: $0 (0)
  197. marker                     ds.w   1        ; offset: $4 (4)
  198. count                     ds.w   1        ; offset: $6 (6)
  199. text                     ds.b   1        ; offset: $8 (8)        ; variable length array, Pascal string 
  200.                          ORG 10
  201. sizeof                     EQU *            ; size:   $A (10)
  202.                         ENDR
  203.  
  204. ; typedef struct Comment     Comment
  205. CommentsChunk             RECORD    0
  206. ckID                     ds.l   1        ; offset: $0 (0)
  207. ckSize                     ds.l   1        ; offset: $4 (4)
  208. numComments                 ds.w   1        ; offset: $8 (8)
  209. comments                 ds     Comment    ; offset: $A (10)        ; variable length array 
  210. sizeof                     EQU *            ; size:   $14 (20)
  211.                         ENDR
  212.  
  213. ; typedef struct CommentsChunk  CommentsChunk
  214. ; typedef CommentsChunk     *CommentsChunkPtr
  215. TextChunk                 RECORD    0
  216. ckID                     ds.l   1        ; offset: $0 (0)
  217. ckSize                     ds.l   1        ; offset: $4 (4)
  218. text                     ds.b   1        ; offset: $8 (8)        ; variable length array, Pascal string 
  219.                          ORG 10
  220. sizeof                     EQU *            ; size:   $A (10)
  221.                         ENDR
  222.  
  223. ; typedef struct TextChunk     TextChunk
  224. ; typedef TextChunk         *TextChunkPtr
  225.     ENDIF ; __AIFF__
  226.